home *** CD-ROM | disk | FTP | other *** search
- package netscape.debug;
-
- import java.io.IOException;
-
- public class Debugger {
- static DebugManager debugMgr;
- static Process debuggerProcess;
-
- public static void debugBreak() {
- if (launchDebugger()) {
- if (debugMgr != null) {
- debugMgr.debugBreak();
- }
-
- }
- }
-
- public static boolean uncaughtException(Thread var0, Throwable var1) {
- if (!launchDebugger()) {
- return false;
- } else if (debugMgr != null) {
- debugMgr.uncaughtException(var0, var1);
- return true;
- } else {
- return false;
- }
- }
-
- public static void setDebugManager(DebugManager var0) {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkSetFactory();
- }
-
- debugMgr = var0;
- }
-
- public static DebugManager getDebugManager() {
- return debugMgr;
- }
-
- public static void debuggerStartHook() {
- }
-
- static boolean launchDebugger() {
- if (debugMgr == null) {
- SecurityManager.enablePrivilege("Debugger");
- String var0 = System.getProperty("java.debugger");
- if (var0 == null) {
- return false;
- }
-
- try {
- Runtime var1 = Runtime.getRuntime();
- debuggerProcess = var1.exec(var0);
- synchronized(var1){}
-
- try {
- try {
- var1.wait(10000L);
- } catch (InterruptedException var8) {
- System.out.println(((Throwable)var8).toString());
- }
- } catch (Throwable var9) {
- throw var9;
- }
- } catch (IOException var10) {
- ((Throwable)var10).printStackTrace();
- return false;
- }
- }
-
- return true;
- }
- }
-